Dit bericht wordt weergegeven als een fout, die is gegenereerd met de methode Raise of de instructie Error, niet overeenkomt met een fout die door Visual Basic for Applications is gedefinieerd. Het bericht is tevens het resultaat van de functie Error voor argumenten die niet corresponderen met de fouten die door Visual Basic for Applications zijn gedefinieerd. Het kan dus gaan om een fout die u definieert of om een fout die door een object wordt gedefinieerd (met inbegrip van brontoepassingen, zoals Microsoft Excel, Visual Basic, enzovoort). Visual Basic-formulieren genereren bijvoorbeeld veel aan formulieren gerelateerde fouten die niet gegenereerd kunnen worden vanuit de programmacode door alleen een getal op te geven als een argument voor de methode Raise of de instructie Error. Dit bericht heeft de volgende oorzaken en het probleem kan als volgt worden opgelost:
Als dit de bedoeling is, moet u Err.Raise gebruiken en extra argumenten opgeven zodat de eindgebruiker begrijpt welke fout er is opgetreden. U kunt bijvoorbeeld een opmerking insluiten die de fout beschrijft en u kunt de bron van de fout en Help-informatie toevoegen. Als u een fout die u hebt onderschept, opnieuw wilt genereren, zal deze benadering werken als u Err.Clear niet uitvoert voordat u de fout opnieuw genereert. Als u Err.Clear eerst uitvoert, moet u de extra argumenten invullen voor de methode Raise. Kijk goed naar de context waarin de fout is opgetreden en zorg dat u dezelfde fout opnieuw genereert.
Raadpleeg de documentatie voor alle objecten die u hebt geactiveerd. De eigenschap Source van het Err-object moet het programma-id bevatten van de toepassing die of het object dat de fout heeft gegenereerd. Voor een beter begrip van de context waarbinnen een object een fout als resultaat geeft, kunt u in de programmacode die objecten activeert, de constructie On Error Resume Next gebruiken. Dit is te prefereren boven de syntaxis On Error GoTo.
Opmerking In het verleden gebruikten programmeurs vaak een lus om reeksen af te drukken van alle foutmeldingen die te onderscheppen zijn. Dit werd gewoonlijk gedaan met de volgende programmacode:
For index = 1 to 500
Debug.Print Error$(index)
Next index
Met een dergelijke programmacode wordt nog steeds een lijst weergegeven van alle foutberichten van Visual Basic for Applications. Maar met deze programmacode wordt het bericht "Door toepassing of door gebruiker gedefinieerde fout" weergegeven voor fouten die door een brontoepassing zijn gedefinieerd, bijvoorbeeld de fouten in Visual Basic die zijn gerelateerd aan formulieren, besturingselementen, enzovoort. Veel van deze fouten zijn te onderscheppen fouten tijdens runtime. U kunt in Help het tabblad Zoeken gebruiken om een lijst met te onderscheppen fouten te vinden die specifiek zijn voor uw brontoepassing. Klik op de knop Zoeken, typ onderschepbare in het eerste tekstvak en klik vervolgens op Onderwerpen weergeven. Selecteer onderschepbare fouten in de onderste keuzelijst en klik op de knop Weergeven.
Selecteer voor aanvullende informatie het desbetreffende item en druk op F1 (in Windows) of op HELP (op de Macintosh).